Model Advisor Report
Simulink version: 8.2 Model version: 1.164
System: roll_ap Current run: 03-Feb-2014 08:10:56

Run Summary
Pass Fail Warning Not Run Total
   32    0    1    0 33

 Check safety-related optimization settings

Check optimization settings in the model configuration that might impact safety.

Verify 'Block reduction' setting
Check whether the Block reduction check box is cleared.

Passed
Optimization > Block reduction is cleared.
_________________________________________________________________________________________

Verify 'Implement logic signals as boolean data (vs. double)' setting
Check whether the Implement logic signals as boolean data (vs. double) check box is selected.

Passed
Optimization > Implement logic signals as Boolean data (vs. double) is selected.
_________________________________________________________________________________________

Verify 'Application lifespan' setting
Check whether Application lifespan is set to inf.

Passed
Optimization > Application lifespan is set to inf.
_________________________________________________________________________________________

Verify 'Remove root level I/O zero initialization' setting
Check whether the Remove root level I/O zero initialization checkbox is cleared.

Passed
Optimization > Remove root level I/O zero initialization is cleared.
_________________________________________________________________________________________

Verify 'Remove internal data zero initialization' setting
Check whether the Remove internal data zero initialization check box is cleared.

Passed
Optimization > Remove internal data zero initialization is cleared.
_________________________________________________________________________________________

Verify 'Remove code from floating-point to integer conversions that wraps out-of-range values' setting
Check whether the Remove code from floating-point to integer conversions that wraps out-of-range values check box is selected.

Passed
Optimization > Remove code from floating-point to integer conversions that wraps out-of-range values is selected.
_________________________________________________________________________________________

Verify 'Remove code that protects against division arithmetic exceptions' setting
Check whether the Remove code that protects against division arithmetic exceptions check box is cleared.

Passed
Optimization > Remove code that protects against division arithmetic exceptions is cleared.
_________________________________________________________________________________________

Verify 'Optimize using the specified minimum and maximum values' setting
Check whether the Optimize using the specified minimum and maximum values check box is cleared.

Passed
Optimization > Optimize using the specified minimum and maximum values is cleared.


 Check safety-related diagnostic settings for solvers

Check diagnostic settings in the model configuration that apply to solvers and might impact safety.

Verify 'Algebraic loop' setting
Check whether the Algebraic loop menu is set to error.

Passed
Diagnostics > Solver > Algebraic loop is set to error.
_________________________________________________________________________________________

Verify 'Minimize algebraic loop' setting
Check whether the Minimize algebraic loop menu is set to error.

Passed
Diagnostics > Solver > Minimize algebraic loop is set to error.
_________________________________________________________________________________________

Verify 'Block priority violation' setting
Check whether the Block priority violation menu is set to error.

Passed
Diagnostics > Solver > Block priority violation is set to error.
_________________________________________________________________________________________

Verify 'Unspecified inheritability of sample time' setting
Check whether the Unspecified inheritability of sample time menu is set to error.

Passed
Diagnostics > Solver > Unspecified inheritability of sample time is set to error.
_________________________________________________________________________________________

Verify 'Automatic solver parameter selection' setting
Check whether the Automatic solver parameter selection menu is set to error.

Passed
Diagnostics > Solver > Automatic solver parameter selection is set to error.
_________________________________________________________________________________________

Verify 'State name clash' setting
Check whether the State name clash menu is set to warning.

Passed
Diagnostics > Solver > State name clash is set to warning.


 Check safety-related diagnostic settings for sample time

Check diagnostic settings in the model configuration that apply to sample time and might impact safety.

Verify 'Source block specifies -1 sample time' setting
Check whether the Source block specifies -1 sample time menu is set to error

Passed
Diagnostics > Sample Time > Source block specifies -1 sample time is set to error.
_________________________________________________________________________________________

Verify 'Discrete used as continuous' setting
Check whether the Discrete used as continuous menu is set to error

Passed
Diagnostics > Sample Time > Discrete used as continuous is set to error.
_________________________________________________________________________________________

Verify 'Multitask rate transition' setting
Check whether the Multitask rate transition menu is set to error

Passed
Diagnostics > Sample Time > Multitask rate transition is set to error.
_________________________________________________________________________________________

Verify 'Multitask conditionally executed subsystems' setting
Check whether the Multitask conditionally executed subsystems menu is set to error

Passed
Diagnostics > Sample Time > Multitask conditionally executed subsystems is set to error.
_________________________________________________________________________________________

Verify 'Enforce sample times specified by signal specification blocks' setting
Check whether the Enforce sample times specified by Signal Specification blocks menu is set to error

Passed
Diagnostics > Sample Time > Enforce sample times specified by Signal Specification blocks is set to error.


 Check safety-related diagnostic settings for signal data

Verify 'Signal resolution' setting
Check whether the Signal resolution menu is set to Explicit Only

Passed
Diagnostics > Data Validity > Signal resolution is set to Explicit only.
_________________________________________________________________________________________

Verify 'Division by singular matrix' setting
Check whether the Division by singular matrix menu is set to error

Passed
Diagnostics > Data Validity > Division by singular matrix is set to error.
_________________________________________________________________________________________

Verify 'Underspecified data types' setting
Check whether the Underspecified data types menu is set to error

Passed
Diagnostics > Data Validity > Underspecified data types is set to error.
_________________________________________________________________________________________

Verify 'Detect overflow' setting
Check whether the Detect overflow menu is set to error

Passed
Diagnostics > Data Validity > Signals > Detect overflow is set to error.
_________________________________________________________________________________________

Verify 'Inf or NaN block output' setting
Check whether the Inf or NaN block output menu is set to error

Passed
Diagnostics > Data Validity > Inf or NaN block output is set to error.
_________________________________________________________________________________________

Verify '"rt" prefix for identifiers' setting
Check whether the "rt" prefix for identifiers menu is set to error

Passed
Diagnostics > Data Validity > "rt" prefix for identifiers is set to error.
_________________________________________________________________________________________

Verify 'Simulation range checking' setting
Check whether the Simulation range checking menu is set to error

Passed
Diagnostics > Data Validity > Simulation range checking is set to error.


 Check safety-related diagnostic settings for parameters

Verify 'Detect downcast' setting
Check whether the Detect downcast menu is set to error

Passed
Diagnostics > Data Validity > Detect downcast is set to error.
_________________________________________________________________________________________

Verify 'Detect underflow' setting
Check whether the Detect underflow menu is set to error

Passed
Diagnostics > Data Validity > Detect underflow is set to error.
_________________________________________________________________________________________

Verify 'Detect overflow' setting
Check whether the Detect overflow menu is set to error

Passed
Diagnostics > Data Validity > Parameters > Detect overflow is set to error.
_________________________________________________________________________________________

Verify 'Detect precision loss' setting
Check whether the Detect precision loss menu is set to error

Passed
Diagnostics > Data Validity > Detect precision loss is set to error.
_________________________________________________________________________________________

Verify 'Detect loss of tunability' setting
Check whether the Detect loss of tunability menu is set to error

Passed
Diagnostics > Data Validity > Detect loss of tunability is set to error.


 Check safety-related diagnostic settings for data used for debugging

Verify 'Model Verification block enabling' setting
Check whether the Model Verification block enabling menu is set to Disable All.

Passed
Diagnostics > Data Validity> Model Verification block enabling is set to Disable All.


 Check safety-related diagnostic settings for data store memory

Verify 'Detect read before write' setting
Check whether the Detect read before write menu is set to Enable all as errors.

Passed
Diagnostics > Data Validity > Detect read before write is set to Enable all as errors.
_________________________________________________________________________________________

Verify 'Detect write after read' setting
Check whether the Detect write after read menu is set to Enable all as errors.

Passed
Diagnostics > Data Validity > Detect write after read is set to Enable all as errors.
_________________________________________________________________________________________

Verify 'Detect write after write' setting
Check whether the Detect write after write menu is set to Enable all as error.

Passed
Diagnostics > Data Validity > Detect write after write is set to Enable all as error.
_________________________________________________________________________________________

Verify 'Multitask data store' setting
Check whether the Multitask data store menu is set to error.

Passed
Diagnostics > Data Validity > Multitask data store is set to error.


 Check safety-related diagnostic settings for type conversions

Verify 'Unnecessary type conversions' setting
Check whether the Unnecessary type conversions menu is set to warning.

Passed
Diagnostics > Type Conversion > Unnecessary type conversions is set to warning.
_________________________________________________________________________________________

Verify 'Vector/matrix block input conversion' setting
Check whether the Vector/matrix block input conversion menu is set to error.

Passed
Diagnostics > Type Conversion > Vector/Matrix Block Input Conversion is set to error.
_________________________________________________________________________________________

Verify '32-bit integer to single precision float conversion' setting
Check whether the 32-bit integer to single precision float conversion menu is set to warning.

Passed
Diagnostics > Type Conversion > 32 Bit Integer To single precision float conversion is set to warning.


 Check safety-related diagnostic settings for signal connectivity

Verify 'Signal label mismatch' setting
Check whether the Signal label mismatch menu is set to error.

Passed
Diagnostics > Connectivity > Signal label mismatch is set to error.
_________________________________________________________________________________________

Verify 'Unconnected block input ports' setting
Check whether the Unconnected block input ports menu is set to error.

Passed
Diagnostics > Connectivity > Unconnected block input ports is set to error.
_________________________________________________________________________________________

Verify 'Unconnected block output ports' setting
Check whether the Unconnected block output ports menu is set to error.

Passed
Diagnostics > Connectivity > Unconnected block output ports is set to error.
_________________________________________________________________________________________

Verify 'Unconnected lines' setting
Check whether the Unconnected lines menu is set to error.

Passed
Diagnostics > Connectivity > Unconnected lines is set to error.


 Check safety-related diagnostic settings for bus connectivity

Verify 'Unspecified bus object at root Outport block' setting
Check whether the Unspecified bus object at root Outport block menu is set to error.

Passed
Diagnostics > Connectivity > Unspecified bus object at root Outport block is set to error.
_________________________________________________________________________________________

Verify 'Element name mismatch' setting
Check whether the Element name mismatch menu is set to error.

Passed
Diagnostics > Connectivity > Element name mismatch is set to error.
_________________________________________________________________________________________

Verify 'Mux blocks used to create bus signals' and 'Bus signal treated as vector' settings
Check whether the Mux blocks used to create bus signals and Bus signal treated as vector menus are set to error.

Passed
Diagnostics > Connectivity > Mux blocks used to create bus signals and Diagnostics > Connectivity > Bus signal treated as vector are set to error.


 Check safety-related diagnostic settings that apply to function-call connectivity

Verify 'Invalid function-call connection' setting
Check whether the Invalid function-call connection menu is set to error.

Passed
Diagnostics > Connectivity > Invalid function-call connection is set to error.
_________________________________________________________________________________________

Verify 'Context-dependent inputs' setting
Check whether the Context-dependent inputs menu is set to Enable all as errors.

Passed
Diagnostics > Connectivity > Context-dependent inputs is set to Enable all as errors.


 Check safety-related diagnostic settings for compatibility

Verify 'S-function upgrades needed' setting
Check whether the S-function upgrades needed is set to error.

Passed
Diagnostics > Compatibility > S-function upgrades needed is set to error.


 Check safety-related diagnostic settings for model initialization

Check safety-related diagnostic settings for model initialization
Check whether Diagnostics > Data Validity >Underspecified initialization detection is set to Simplified. If it is set to Classic check that the sub-parameters are selected.

Passed
Diagnostics > Data Validity >Underspecified initialization detection is set to Simplified.


 Check safety-related diagnostic settings for model referencing

Verify 'Model block version mismatch' setting
Check whether the Model block version mismatch menu is set to none.

Passed
Diagnostics > Model Referencing > Model block version mismatch is set to none.
_________________________________________________________________________________________

Verify 'Port and parameter mismatch' setting
Check whether the Port and parameter mismatch menu is set to error.

Passed
'Diagnostics > Model Referencing > Port and parameter mismatch is set to error.
_________________________________________________________________________________________

Verify 'Model configuration mismatch' setting
Check whether the Model configuration mismatch menu is set to warning.

Passed
Diagnostics > Model Referencing > Model configuration mismatch is set to warning.
_________________________________________________________________________________________

Verify 'Invalid root Inport/Outport block connection' setting
Check whether the Invalid root Inport/Outport block connection menu is set to error.

Passed
Diagnostics > Model Referencing > Invalid root Inport/Outport block connection is set to error.
_________________________________________________________________________________________

Verify 'Unsupported data logging' setting
Check whether the Unsupported data logging menu is set to error.

Passed
Diagnostics > Model Referencing > Unsupported data logging is set to error.


 Check safety-related model referencing settings

Verify Rebuild options setting
Check whether the Model Referencing > Rebuild options menu is set to Never or If any changes detected.

Passed
Model Referencing > Rebuild options is set to Never or If any changes detected.
_________________________________________________________________________________________

Verify Never rebuild targets diagnostic setting
Check whether the Model Referencing > Never rebuild targets diagnostic menu is set to Error if targets require rebuild. Setting Model Referencing > Rebuild options to Never enables this menu.

Passed
Model Referencing > Rebuild options is not set to Never.
_________________________________________________________________________________________

Verify Pass fixed-size scalar root inputs by value for code generation setting
Check whether the Model Referencing > Pass fixed-size scalar root inputs by value for code generation check box is cleared.

Passed
Model Referencing > Pass fixed-size scalar root inputs by value for code generation is cleared.
_________________________________________________________________________________________

Verify Minimize algebraic loop occurrences setting
Check whether the Model Referencing > Minimize algebraic loop occurrences check box is cleared.

Passed
Model Referencing > Minimize algebraic loop occurrences check box is cleared.


 Check safety-related code generation settings

Verify 'Include comments' setting
Check whether the Include comments check box is selected.

Passed
Code Generation > Comments > Include comments is selected.
_________________________________________________________________________________________

Verify Simulink block/ Stateflow object comments' setting
Check whether the Simulink block/ Stateflow object comments check box are selected. Selecting Include comments enables this check box.

Passed
Code Generation > Comments > Simulink block/ Stateflow object comments is selected.
_________________________________________________________________________________________

Verify 'Show eliminated blocks' setting
Check whether the Show eliminated blocks check box is selected.

Passed
Code Generation > Comments > Eliminated / virtual blocks is selected.
_________________________________________________________________________________________

Verify 'Verbose comments for SimulinkGlobal storage class' setting
Check whether the Verbose comments for SimulinkGlobal storage class check box is selected. Selecting Include comments enables this check box.

Passed
Code Generation > Comments > Verbose comments for SimulinkGlobal storage class is selected.
_________________________________________________________________________________________

Verify 'Requirements in block comments' setting
Check whether the Requirements in block comments check box is selected. Selecting Include comments enables this check box.

Passed
Code Generation > Comments > Requirements in block comments is selected.
_________________________________________________________________________________________

Verify 'non-finite numbers' setting
Check whether the non-finite numbers check box is cleared. Selecting Support: floating-point numbers enables this check box.

Passed
Code Generation > Interface > non-finite numbers is cleared.
_________________________________________________________________________________________

Verify 'absolute time' setting
Check whether the absolute time check box is cleared.

Passed
Code Generation > Interface > absolute time is cleared.
_________________________________________________________________________________________

Verify 'continuous time' setting
Check whether the continuous time check box is cleared.

Passed
Code Generation > Interface > continuous time is cleared.
_________________________________________________________________________________________

Verify 'non-inlined S-functions' setting
Check whether the non-inlined S-functions check box is cleared.

Passed
Code Generation > Interface > non-inlined S-functions is cleared.
_________________________________________________________________________________________

Verify 'GRT compatible call interface' setting
Check whether the GRT compatible call interface check box is cleared.

Passed
Code Generation > Interface > GRT compatible call interface is cleared.
_________________________________________________________________________________________

Verify 'Single output/update function' setting
Check whether the Single output/update function check box is selected.

Passed
Code Generation > Interface > Single output/update function is selected.
_________________________________________________________________________________________

Verify 'Terminate function required' setting
Check whether the Terminate function required check box is cleared.

Passed
Code Generation > Interface > Terminate function required is cleared.
_________________________________________________________________________________________

Verify 'Suppress error status in real-time model data structure' setting
Check whether the Suppress error status in real-time model data structure check box is selected.

Passed
Code Generation > Interface > Suppress error status in real-time model data structure is selected.
_________________________________________________________________________________________

Verify 'MAT-file logging' setting
Check whether the MAT-file logging check box is cleared.

Passed
Code Generation > Interface > MAT-file logging is cleared.
_________________________________________________________________________________________

Verify 'Parentheses level' setting
Check whether the Parentheses level menu is set to Maximum (Specify precedence with parentheses).

Passed
Code Generation > Code Style > Parentheses level is set to Maximum (Specify precedence with parentheses).
_________________________________________________________________________________________

Verify 'Preserve operand order in expression' setting
Check whether the Preserve operand order in expression check box is selected.

Passed
Code Generation > Code Style > Preserve operand order in expression is selected.
_________________________________________________________________________________________

Verify 'Preserve condition expression in if statement' setting
Check whether the Preserve condition expression in if statement check box is selected.

Passed
Code Generation > Code Style > Preserve condition expression in if statement is selected.
_________________________________________________________________________________________

Verify 'Generate preprocessor conditionals' setting
Check whether the Generate preprocessor conditionals menu is set to Disable all.

Passed
Code Generation > Interface > Generate preprocessor conditionals is set to Disable all.
_________________________________________________________________________________________

Verify Minimum mangle length is 4 or greater

Passed
Code Generation > Symbols > Minimum mangle length is set to 4 or greater.


 Check safety-related diagnostic settings for saving

Verify 'Block diagram contains disabled library links' setting
Check whether the Block diagram contains disabled library links menu is set to error.

Passed
Diagnostics > Saving > Block diagram contains disabled library links is set to error
_________________________________________________________________________________________

Verify 'Block diagram contains parameterized library links' setting
Check whether the Block diagram contains parameterized library links menu is set to error.

Passed
Diagnostics > Saving > Block diagram contains parameterized library links is set to error


 Check for blocks that do not link to requirements

Check for blocks that do not link to a requirements document

Warning
The following blocks do not link to a requirements document:

Recommended Action
For each block in the list, in the Model Editor, right-click the block, select Requirements, and specify a requirement.


 Check usage of Math blocks

Check for math operators that require non-finite number support.

Passed
There are no Math blocks in the model.


 Check state machine type of Stateflow charts

Compares the state machine type of all Stateflow charts to the desired type.

Passed
The model does not contain Stateflow charts.

Input Parameters Selection
Name Value
State Machine Type Common


 Check Stateflow charts for ordering of states and transitions

Identify Stateflow charts that have User specified state/transition execution order cleared.

Passed
No Stateflow charts were found.


 Check Stateflow debugging options

Identify whether the following Stateflow debugging options are cleared: Enable debugging/animation, Enable overflow detection (with debugging), Transition Conflict, Detect Cycles, State Inconsistency, and Data Range

Passed
No Stateflow charts were found.


 Check usage of lookup table blocks

Check for Lookup Table blocks, Prelookup blocks and Interpolation blocks that do not generate out-of-range checking code.

Passed
There are no Lookup Table blocks, Prelookup blocks and Interpolation blocks in the model.


 Check for inconsistent vector indexing methods

Check consistent usage of vector indexing methods across the model or subsystem

Passed
No blocks using vector indexing were found


 Check for blocks not recommended for C/C++ production code deployment

Identify blocks not supported by code generation or not recommended for C/C++ production code deployment.

Passed
Blocks not recommended for C/C++ production code deployment were not found in the model or subsystem.


 Check Stateflow charts for uniquely defined data objects

Identifies local data identifiers that are defined in multiple scopes within a chart.

Passed
No Stateflow charts were found.


 Check usage of Math Operations blocks

Identify usage of Math Operation blocks in Simulink that might impact safety

Check Abs blocks
Identify Absolute Value blocks that might produce unreachable code or overflows

Passed
All Abs blocks are using data types appropriately.
_________________________________________________________________________________________

Check for usage of Gain blocks
Identify Gain blocks whose value equals 1

Passed
There are no Gain blocks whose value equals 1 in the model or subsystem


 Check usage of Signal Routing blocks

Check Switch blocks
Identify Switch blocks that might generate code with inequality operations (~=) in expressions where at least one side of the expression is a floating-point variable or constant.

Passed
No Switch blocks that might generate code with inequality operations (~=) in expressions where at least one side of the expression is a floating-point variable or constant were found.


 Check usage of Logic and Bit Operations blocks

Identify usage of Logic and Bit Operations blocks in Simulink that might impact safety.

Check blocks that compute relational operators
Identify blocks computing a relational operator that is operating on different data types or equating floating-point types.

Passed
All blocks that compute relational operators are being used appropriately.
_________________________________________________________________________________________

Check Logic blocks
Identify Logical Operator blocks that have non-boolean inputs or outputs.

Passed
No Logic blocks that have non-boolean inputs or outputs were found.


 Check usage of Ports and Subsystems blocks

Identify usage of Ports and Subsystems blocks in Simulink that might impact safety.

Check While Iterator blocks
Identify While Iterator blocks that might cause infinite loops.

Passed
There are no While Iterator blocks in the model.
_________________________________________________________________________________________

Check For Iterator blocks
Identify For Iterator blocks that cause variable loops.

Passed
There are no For Iterator blocks in this model.
_________________________________________________________________________________________

Check If blocks
Identify If blocks with If expressions or Elseif expressions that might cause floating point equality or inequality comparisons in generated code.
Identify If blocks using Elseif expressions without having an Else condition.
Identify If blocks with output ports that are not connected to If Action Subsystem blocks.

Passed
There are no If blocks in this model or subsystem.
_________________________________________________________________________________________

Check Switch Case blocks
Identify Switch Case blocks that do not have a default case.
Identify Switch Case blocks with output ports that are not connected to Switch Case Action Subsystem blocks.

Passed
No Switch Case blocks were found in the model or subsystem.


 Check for MATLAB Function block interfaces with inherited properties

Identify MATLAB Function blocks that have inputs, outputs, or parameters with inherited complexity or data type properties.

Passed
No MATLAB Function blocks found in the model or subsystem.


 Check MATLAB Function block metrics

Identify MATLAB Function blocks and external MATLAB functions that violate complexity limits.

Passed
No MATLAB Function blocks were found.

Input Parameters Selection
Name Value
Maximum effective lines of code per function 60
Minimum density of comments 0.2
Maximum cyclomatic complexity per function 15


 Display model version information

Display model configuration and checksum information.

Model configuration and checksum information
Attribute Value
Model Version 1.164
Author bpotter
Date Mon Feb 03 08:05:33 2014
Model Checksum 2694502046 3305692392 1986519701 1876337218